package case10

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
	"strconv"
)

func Test() {

	fmt.Println("🎯示例十：获取querystring参数：?后面携带的参数")
	fmt.Println("指的是URL中?后面携带的参数如：/userlist?name=abc")

	r := gin.Default()

	// http://localhost:60000/user/search?age=10&hobby=1,2,3
	r.GET("/user/search", func(c *gin.Context) {
		// 获取?号后面的参数

		// 读取 姓名,当页面没有传name 此时接收到的是""空字符串
		//name := c.Query("name")

		// 读取 姓名，若没有传入参数，赋予默认值
		name := c.DefaultQuery("name", "LILI")

		// 读取 年龄
		var ageStr string = c.Query("age")
		age, err := strconv.Atoi(ageStr)
		if err != nil {
			c.JSON(http.StatusInternalServerError, gin.H{
				"message": "age参数有误!",
				"code":    http.StatusInternalServerError,
			})
			return
		}

		// 读取 爱好 数组参数
		hobby := c.QueryArray("hobby")

		c.JSON(http.StatusOK, gin.H{
			"name":  name,
			"age":   age,
			"hobby": hobby,
		})

	})

	r.Run(":60000")

}
